package ipower.studentworks.action;

import ipower.utils.XmlUtil;

import java.io.IOException;

import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.Action;
import org.w3c.dom.Document;
import com.alibaba.fastjson.JSON;

/**
 * ACTION基础类。
 * @author young.
 * @since 2013-10-23.
 * */
//@ParentPackage("basePackage")
public abstract class BaseAction implements Action {
	private static final Logger logger = Logger.getLogger(BaseAction.class);
	/**
	 * 将对象转换成JSON字符串，并响应回前台。
	 * @param o
	 * 	须转换的对象。
	 * */
	public void writeJson(Object o){
		if(o != null){
			try{
				String json = JSON.toJSONStringWithDateFormat(o, "yyyy-MM-dd HH:mm:ss");
				ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
				ServletActionContext.getResponse().getWriter().write(json);
				ServletActionContext.getResponse().getWriter().flush();
				ServletActionContext.getResponse().getWriter().close();
			}catch(IOException e){
				logger.error(e);
				e.printStackTrace();
			}
		}
	}
	/**
	 * 输出Xml。
	 * @param doc
	 * 	Xml对象。
	 * */
	public void writeXml(Document doc){
		if(doc != null){
			try{
				ServletActionContext.getResponse().setContentType("text/xml;charset=utf-8");
				String xml = XmlUtil.writeXmlToString(doc);
				ServletActionContext.getResponse().getWriter().write(xml);
				ServletActionContext.getResponse().getWriter().flush();
				ServletActionContext.getResponse().getWriter().close();
			}catch(IOException e){
				logger.error(e);
				e.printStackTrace();
			}
		}
	}
	/**
	 * 默认执行调用list页面.
	 * @return 执行结果。
	 * */
	@Override
	public String execute() throws Exception {
		return this.list();
	}
	/**
	 * 调用list页面。
	 * */
	public String list(){
		return "list";
	}
	/**
	 * 调用edit页面。
	 * */
	public String edit(){
		return "edit";
	}
}